from tests.base_test import base_test_case
from app.utils.logger import get_logger, _logger_manager
import logging

print(f"输出日志Name：{logging.Logger.manager.loggerDict.keys()}")

# 获取模块级logger，用于类内部使用

def logging_features_test():
    """
    测试日志功能
    """
    print("开始测试日志功能...")

    # 先导入第三方库，这样它们就会注册到日志系统中
    print("导入第三方库...")
    import paddle
    import paddleocr
    import paddlex
    import urllib3
    import matplotlib
    import PIL
    # 向paddleocr记录器发送所有级别的日志
    print("测试paddleocr日志记录...")
    paddleocr_logger = get_logger('paddleocr')
    print(f"PaddleOCR logger 级别: {paddleocr_logger.level}")
    paddleocr_logger.debug("这是一条来自paddleocr的DEBUG日志")
    paddleocr_logger.info("这是一条来自paddleocr的INFO日志")
    paddleocr_logger.warning("这是一条来自paddleocr的WARNING日志")
    paddleocr_logger.error("这是一条来自paddleocr的ERROR日志")
    # 等待一段时间确保库完全导入
    import time
    time.sleep(1)

    print("测试完成，检查日志文件...")
    base_test_case.check_log_files()


if __name__ == '__main__':
    logging_features_test()
    # 获取日志统计信息
    stats = _logger_manager.get_log_stats()
    print(f"DEBUG: {stats['DEBUG']} 条")
    print(f"INFO: {stats['INFO']} 条")
    print(f"WARNING: {stats['WARNING']} 条")
    print(f"ERROR: {stats['ERROR']} 条")
    print(f"CRITICAL: {stats['CRITICAL']} 条")
